package com.yuandian.utils;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * list 工具类
 *
 * @author zhoutian
 * @date 2021/1/13 10:02
 */

public class ListUtils {

    /**
     * 将list按照指定元素个数分割
     *
     * @param source 源
     * @param subListSize 集合大小
     * @return  List<List<T>>
     */
    public static <T> List<List<T>> partList(List<T> source, int subListSize) {
        if (source == null) {
            return null;
        }
        List<List<T>> result = new ArrayList<>();
        // 集合长度
        int size = source.size();
        // 余数
        int remaider = size % subListSize;
        // 商
        int number = size / subListSize;

        for (int i = 0; i < number; i++) {
            List<T> value = source.subList(i * subListSize, (i + 1) * subListSize);
            result.add(value);
        }
        if (remaider > 0) {
            List<T> ts = source.subList(size - remaider, size);
            result.add(ts);
        }
        return result;
    }

    public static void main(String[] args) {
        List<Integer> l = Arrays.asList(1, 2, 3, 4, 5);
        List<List<Integer>> lists = partList(l, 2);
        System.out.println(lists);
    }

    /**
     * 判断 list 是否为空
     * @param list
     * @param <T>
     * @return
     */
    public static <T> boolean isNotNull(List<T> list) {

        if (list != null && list.size() > 0) {
            return true;
        }
        return false;
    }

}
